1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.collect;
18
19 import com.google.common.annotations.GwtCompatible;
20
21 import java.util.Map.Entry;
22
23 import javax.annotation.Nullable;
24
25
26
27
28
29
30
31 @GwtCompatible(emulated = true)
32 final class ImmutableMapKeySet<K, V> extends ImmutableSet<K> {
33 private final ImmutableMap<K, V> map;
34
35 ImmutableMapKeySet(ImmutableMap<K, V> map) {
36 this.map = map;
37 }
38
39 @Override
40 public int size() {
41 return map.size();
42 }
43
44 @Override
45 public UnmodifiableIterator<K> iterator() {
46 return asList().iterator();
47 }
48
49 @Override
50 public boolean contains(@Nullable Object object) {
51 return map.containsKey(object);
52 }
53
54 @Override
55 ImmutableList<K> createAsList() {
56 final ImmutableList<Entry<K, V>> entryList = map.entrySet().asList();
57 return new ImmutableAsList<K>() {
58
59 @Override
60 public K get(int index) {
61 return entryList.get(index).getKey();
62 }
63
64 @Override
65 ImmutableCollection<K> delegateCollection() {
66 return ImmutableMapKeySet.this;
67 }
68
69 };
70 }
71
72 @Override
73 boolean isPartialView() {
74 return true;
75 }
76 }
77